Fixed point vector dot product calculations and matrix vector products are often required in video processing and audio processing circuits such as MPEG codecs, audio or video filters, or any other application that requires the generation of vector dot products and matrix vectors as part of filtering operations or other suitable operations to produce, for example, data representing pixel information, audio information, or any other suitable information. For example, handheld or non-handheld video image display devices such as, but not limited to, cameras, cell phones, PDAs, digital medial players or devices that render video streams or play DVDs, process information that has been coded or needs to be decoded in some fashion wherein the decoding or filtering process utilizes fixed point vector dot product and/or matrix vector product operations. For example, MPEG decoders may, for example, utilize discrete cosine transform circuits that generate discrete cosine transform coefficient matrices that must be processed to eventually produce pixels for display on a display of a device. However, known video decoders, finite impulse response (FIR) filters and other circuits typically employ a type of lookup table (addressable ROM) that may be used, for example, to store partial product values. The use of lookup tables (ROM) can greatly increase the cost of devices. In other systems, coefficients and data may be received serially from ROM, one bit at a time, and the data and coefficients are serially multiplied to produce fixed point vector dot products that are used to further generate information for display or output. Again, the use of ROM can be costly.
Other processes are known that use dedicated non-distributed multipliers, clocked accumulators and clocked shift registers to store partial sums of the output sample. However, the use of clocked shift registers or clocked accumulators can also add to the complexity and cost due to additional real estate required or other factors.
Other devices may, for example, integrate a finite impulse response filter with a digital analog converter decoder logic in a ROM device. Finite impulse response output values are obtained from the ROM device. As such, existing integrated circuits, for example, use ROM lookup tables that store partial sum values. In the context of, for example, MPEG video decoders the possible coefficients and corresponding partial products may be expected and when a particular data pattern is received and the coefficients are provided, they are used to lookup the partial product values in a lookup table so very little computation is employed. However, the ROM and corresponding circuitry necessary to perform the operations may not be desirable due to potential costs in terms of excessive real estate that the ROM may use up in an integrated circuit, and additional other costs. For example, ROMs may also have additional leakage current problems and data corruption problems and ROM circuits may need to have built in test logic (BIST) for the memory which can also take up additional space on an integrated circuit and require additional power.
Therefore, a need exists for an improved architecture and method for generating vector dot products and matrix vector products to facilitate video/audio processing or other data processing.